package fifth.引用传递;

public class Demo {
    public static void main(String[] args) {
        //基本类型
        int  num = 10;
        basic(num);
        System.out.println("basci引用后 = "+num);
        //引用类型
        String s = "hello";
        ref(s);
        System.out.println("引用后="+s);
    }
    public static  void basic(int num){
        num*=2;
        System.out.println("basic num = "+num);
    }
    public static void ref(String s){
        s += "world";
        System.out.println("ref s="+s);
    }
}
/**
 * 总结
 * java中不存在引用传递
 * 表面上在方法内好像改变了属性的值 实际只不过是在方法内 传递进来的参数 和内部本身的参数指向了同一个属性值
 * 如果在方法内new 一个对象 那么就会为了这个对象开辟一个新的空间 然后把原来对象的值以副本的形式传递给新的对象
 * 两个对象之间相互隔离

 具体参考
 https://segmentfault.com/a/1190000016773324#comment-area
 https://www.cnblogs.com/boboooo/p/9066831.html
 */
